Comment configurer NFS Server sur Debian 12 (Bookworm)

 

Le partage de fichiers dans le monde Linux se réfère à la capacité de partager des fichiers et des répertoires entre plusieurs systèmes Linux ou entre Linux et d'autres systèmes d'exploitation. Il permet aux utilisateurs d'accéder et de collaborer sur des fichiers à travers un réseau, ce qui facilite le partage des données et des ressources. Voici quelques aspects clés du partage de fichiers dans le monde Linux:

Un serveur NFS (Network File System) est un composant dans un environnement réseau qui fournit des services de partage de fichiers en utilisant le protocole NFS. Il permet aux clients d'accéder et de monter des répertoires distants comme s'ils étaient des annuaires locaux sur leurs propres systèmes. Le serveur NFS héberge les répertoires partagés et les met à la disposition des clients autorisés sur le réseau.

Caractéristiques et avantages du serveur NFS

1. Préparer le système

Assurez-vous que le système est à jour avant de commencer toute installation.

sudo apt update

sudo apt upgrade -y

2. Installez les paquets nfs-server

Exécutez la commande ci-dessous pour installer les paquets nfs-server:

$ sudo apt install nfs-kernel-server rpcbind

Reading package lists... Done

Building dependency tree... Done

Reading state information... Done

The following additional packages will be installed:

  keyutils libevent-core-2.1-7 libnfsidmap1 nfs-common python3-yaml

Suggested packages:

  open-iscsi watchdog

The following NEW packages will be installed:

  keyutils libevent-core-2.1-7 libnfsidmap1 nfs-common

  nfs-kernel-server python3-yaml rpcbind

0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.

Need to get 819 kB of archives.

After this operation, 3,187 kB of additional disk space will be used.

Do you want to continue? [Y/n] y

3. Créer un répertoire pour partager avec les clients

Le répertoire qui sera partagé avec et accessible par les machines clientes sera créé dans cette phase.

sudo mkdir -p /mnt/nfs_share

Nous devons supprimer toutes les contraintes de permission du dossier partagé afin de permettre aux postes de travail clients d'y accéder librement.

sudo chown -R nobody:nogroup /mnt/nfs_share

sudo chmod 777 /mnt/nfs_share

4. Configurer le répertoire partagé

Utilisez votre meilleur éditeur pour modifier le fichier de configuration /etc/exports pour configurer le répertoire partagé pour nfs.

sudo vim /etc/exports

Le répertoire partagé, le réseau client et les permissions client sont tous listés dans ce fichier. Après avoir ouvert le fichier, saisissez les informations suivantes:

/mnt/nfs_share 192.168.200.0/24(rw,sync,no_subtree_check)

les moyens d'accès sont limités aux systèmes du réseau. Pour l'accès de tous les réseaux vous pouvez utiliser *

Vous devez être au courant des options suivantes pour choisir:

Si vous souhaitez accéder à certains serveurs uniques, spécifiez leurs adresses IP séparément dans le fichier /etc/exports :

/mnt/nfs_share client_ip_1(rw,sync,no_subtree_check)

/mnt/nfs_share client_ip_2(rw,sync,no_subtree_check)

Restart et activer nfs-server.

sudo systemctl restart nfs-server

sudo systemctl is-enabled nfs-server

Vérifier l'état du serveur nsf.

$ systemctl status nfs-server

● nfs-server.service - NFS server and services

     Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; >

     Active: active (exited) since Thu 2023-06-29 22:45:33 EAT; 13s ago

    Process: 4270 ExecStartPre=/usr/sbin/exportfs -r (code=exited, sta>

    Process: 4272 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/>

   Main PID: 4272 (code=exited, status=0/SUCCESS)

        CPU: 4ms

 

Jun 29 22:45:33 debian systemd[1]: Starting nfs-server.service - NFS s>

Jun 29 22:45:33 debian exportfs[4270]: exportfs: /etc/exports [3]: Nei>

Jun 29 22:45:33 debian exportfs[4270]:   Assuming default behaviour (

5. Exporter le répertoire partagé

Une fois que les ordinateurs clients ont été autorisés à accéder, exporter le répertoire NFS share et redémarrer le serveur NFS noyau pour les modifications à prendre effet.

sudo exportfs -a

sudo systemctl restart nfs-kernel-server

6. Securing NFS Server with UFW Firewall

Installer le pare-feu ufw et limiter l'accès au serveur NFS à des hôtes et réseaux particuliers ne sont que ce que vous ferez à ce stade.

$ sudo apt install ufw

The following additional packages will be installed:

  iptables libip6tc2

Suggested packages:

  firewalld rsyslog

The following NEW packages will be installed:

  iptables libip6tc2 ufw

0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.

Need to get 548 kB of archives.

After this operation, 3,411 kB of additional disk space will be used.

Do you want to continue? [Y/n] y

Ajouter le service SSH aux règles du pare-feu ufw.

ufw allow ssh

Vous devez autoriser l'accès par le pare-feu pour que le client accède à la part NFS; sinon, le montage du répertoire partagé ne sera pas possible.

sudo ufw allow from  192.168.200.0/24 to any port nfs

sudo ufw enable

Vérifier son statut.

$ ufw status

Status: active

 

To                         Action      From

--                         ------      ----

2049                       ALLOW       192.168.200.0/24      

7. Installer le client NFS sur les machines client

En utilisant la commande apt ci-dessous, vous installerez le paquet ‘nfs-common‘ et configurez les clients pour accéder au répertoire partagé et à la partition sur le serveur NFS.

sudo apt update

sudo apt install nfs-common

Nous ferons un répertoire dans lequel nous montons la partition NFS du serveur  

sudo mkdir -p /mnt/nfs_clientshare

Montons la partition NFS sur le répertoire nouvellement établi.

sudo mount <nfs-server-ip>:/mnt/nfs_share /mnt/nfs_clientshare

Pour voir si le partage NFS fonctionne sur le client, nous écrivons au répertoire partagé du serveur et voyons si nous pouvons accéder aux mêmes fichiers du client. Créer les fichiers texte suivants sur le serveur NFS :

cd /mnt/nfs_share

touch file1

Vérifiez si les fichiers existent sur le client nfs.

$ ls -l /mnt/nfs_clientshare

total 0

-rw-r--r-- 1 root root 0 Jul  3 16:42 file1

8. Monter NFS sur le stand

Nous découvrirons comment configurer la configuration /etc/fstab pour monter le répertoire ou la partition NFS sur le démarrage  du système. Ouvrir /etc/fstab ajouter les lignes ci-dessous et entrer vos propres adresses IP pour les détails, le répertoire partagé et le répertoire de montage de chemin.

$ sudo vim /etc/fstab

192.168.200.173:/mnt/nfs_share  /mnt/nfs_clientshare   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

Vérifiez si le /etc/fstab réussit en exécutant les commandes ci-dessous. Assurez-vous que vous n’avez aucune erreur.

sudo umount -R /mnt/nfs_clientshare

Pour monter chaque système de fichiers sur le fichier de configuration ‘/etc/fstab’, exécutez les commandes ci-dessous.

sudo systemctl daemon-reload

sudo mount -a

La commande suivante doit être exécutée pour afficher tous les systèmes de fichiers montés.

$ df -h

Filesystem                      Size  Used Avail Use% Mounted on

udev                            1.9G     0  1.9G   0% /dev

tmpfs                           392M  1.1M  391M   1% /run

/dev/sda1                        11G  4.6G  5.6G  46% /

tmpfs                           2.0G     0  2.0G   0% /dev/shm

tmpfs                           5.0M     0  5.0M   0% /run/lock

/dev/sda6                        20G   31M   19G   1% /home

tmpfs                           392M  116K  392M   1% /run/user/1000

192.168.200.173:/mnt/nfs_share   11G  4.6G  5.6G  46% /mnt/nfs_clientshare